package com.netease.nie.base.controllers;

import com.netease.nie.base.utils.ProtocolUtils;

/**
 * 处理请求基类
 * @author KingsHunter
 * @createDate July 1st,2016
 *
 */
public class BaseController {

	/**
     * json格式成功返回
	 * @param <T>
     * 
     * @param data
     * @param message
     */
    protected <T> String jsonSuccess(T data, String message) {
    	return renderJson(data, message);
    }
    
    /**
     * json格式成功返回
     * @param <T>
     * @param data
     * @return
     */
    protected <T> String jsonSuccess(T data) {
    	return renderJson(data);
    }
    
    /**
     * json格式失败返回
     * @return
     */
    protected String jsonFail() {
    	return renderJson();
    }
    
    /**
     * json格式失败返回
     * @param code
     * @return
     */
    protected String jsonFail(int code) {
    	return renderJson(code);
    }
    
    /**
     * json格式失败返回
     * @param code
     * @param message
     * @return
     */
    protected String jsonFail(int code, String message) {
    	return renderJson(code, message);
    }
    
    /**
     * 渲染json数据
     * @param data
     * @return
     */
    private <T> String renderJson(T data) {
    	return ProtocolUtils.populateResponseJson(data);
    }
    
    /**
     * 渲染json数据
     * @param data
     * @param message
     * @return
     */
    private <T> String renderJson(T data, String message) {
    	if (data != null)
    		return ProtocolUtils.populateResponseJson(message, data);
    	return renderJson();
    }
    
    /**
     * 渲染json数据
     * @param code
     * @param message
     * @return
     */
    private String renderJson(int code, String message) {
    	return ProtocolUtils.populateResponseJson(code, message);
    }
    
    /**
     * 渲染json数据
     * @param code
     * @return
     */
    private String renderJson(int code) {
    	return ProtocolUtils.populateResponseJson(code);
    }
    
    /**
     * 渲染json数据
     * @return
     */
    private String renderJson() {
    	return ProtocolUtils.populateResponseJson();
    }
}
